//T10088. 信使 spfa算法，可以处理负边权，但不可以处理负权回路的情况
#include <iostream>
#include <queue>

using namespace std;
const int MAXN=100;
const int INF= 0x7fffffff;
int n,m;
int cost[MAXN+1][MAXN+1];
int mincost[MAXN+1];
bool inqueue[MAXN+1];
queue<int> qu;
int main(){
    cin>>n>>m;
    for(int i=1;i<=m;i++) {
        int u,v,k;
        cin>>u>>v>>k;
        cost[u][v]=cost[v][u]=k;
    }
    for(int i=1;i<=n;i++) mincost[i]=INF;
    mincost[1]=0;
    qu.push(1);
    inqueue[1]=true;
    while(!qu.empty()){
        int u=qu.front();
        qu.pop();
        inqueue[u]=false;
        for(int v=1;v<=n;v++){
            if (cost[u][v]>0&&mincost[u]+cost[u][v]<mincost[v]){
                mincost[v]=mincost[u]+cost[u][v];
                if (!inqueue[v]){//防止同一节点在队列中存在多个
                    qu.push(v);
                    inqueue[v]=true;
                }
            }
        }
    }
    int ans=0;
    for(int i=1;i<=n;i++)
        if (mincost[i]>ans) ans=mincost[i];
    cout<<ans;
}

